// 角色管理模块的TS类型

// 角色管理模块接口响应的统一类型
interface ResData {
    code: number,
    message: string,
    ok: boolean
}

// 角色对象类型
export interface RoleObj {
    id?: number;
    createTime?: string;
    updateTime?: string;
    roleName: string;
    remark?: string | null;
}
// 获取角色信息接口的响应数据类型
export interface RoleResData extends ResData {
    data: {
        records: RoleObj[],
        total: number;
        size: number;
        current: number;
        orders: any[]; // 可以根据具体数据定义类型
        optimizeCountSql: boolean;
        hitCount: boolean;
        countId: string | null;
        maxLimit: number | null;
        searchCount: boolean;
        pages: number;
    }
}

// 菜单与按钮的类型
export interface MenuButtonDataObj {
    id: number,
    createTime: string,
    updateTime: string,
    pid: number,
    name: string,
    code: string,
    toCode: string,
    type: number,
    status: null,
    level: number,
    children?: MenuButtonDataObj[],
    select: boolean
}
// 获取数据权限接口的返回值类型
export interface DataPermissionResData extends ResData {
    data: MenuButtonDataObj[]
}

// 保存角色权限信息方法携带的参数类型
export interface SavePermissionObj {
    permissionIdList: number[],
    roleId: number
}